Reduced complexity sliding window based equalizer

ABSTRACT

Data estimation is performed in a wireless communication system using both oversampling and multiple reception antennas. A receive vector is produced for each antenna at a sampling interval which is a multiple of the chip rate of the received signal. A channel response matrix is produced for each antenna at a preferred multiple of the sampling rate. Each receive vector is processed using a sliding window based approach, where a plurality of successive windows are processed. For each window, a combined circulant channel response matrix is produced using the channel response matrices. Using the combined circulant channel response matrix and a combined received vector comprising each received vector in a discrete Fourier transform based approach to estimate a data vector corresponding to that window; and combining the data vector estimated in each window to form a combined data vector.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.10/875,900, filed on Jun. 24, 2004, which claims priority from U.S.provisional application No. 60/482,333, filed on Jun. 25, 2003, andwhich was a continuation-in-part of U.S. patent application Ser. No.10/791,244, filed Mar. 2, 2004, which claims priority from 60/452,165,filed on Mar. 3, 2003, which are incorporated by reference as if fullyset forth.

FIELD OF INVENTION

The invention generally relates to wireless communication systems, Inparticular, the invention relates to data detection in such systems.

BACKGROUND

Due to the increased demands for improved receiver performance, manyadvanced receivers use zero forcing (ZF) block linear equalizers andminimum mean square error (MMSE) equalizers.

In both these approaches, the received signal is typically modeled perEquation 1.r=Hd+n   Equation 1

r is the received vector, comprising samples of the received signal. His the channel response matrix. d is the data vector to be estimated. Inspread spectrum systems, such as code division multiple access (CDMA)systems, d may be represented as data symbols or a composite spread datavector. For a composite spread data vector, the data symbols for eachindividual code are produced by despreading the estimated data vector dwith that code. n is the noise vector.

In a ZF block linear equalizer, the data vector is estimated, such asper Equation 2.d=(H ^(H) H)⁻¹ H ^(H) r   Equation 2

(•)^(H) is the complex conjugate transpose (or Hermitian) operation. Ina MMSE block linear equalizer, the data vector is estimated, such as perEquation 3.d=(H ^(H) H+σ ² I)⁻¹ H ^(H) r   Equation 3

In wireless channels experiencing multipath propagation, to accuratelydetect the data using these approaches requires that an infinite numberof received samples be used, which is not practical. Therefore, it isdesirable to use an approximation technique. One of the approaches is asliding window approach. In the sliding window approach, a predeterminedwindow of received samples and channel responses are used in the datadetection. After the initial detection, the window is slid down to anext window of samples. This process continues until the communicationceases.

By not using an infinite number of samples, an error is introduced intothe symbol model shown in Equation 1 and, therefore causes inaccuratedata detection. The error is most prominent at the beginning and end ofthe window, where the effectively truncated portions of the infinitesequence have the largest impact. One approach to reduce these errors isto use a large window size and truncate the results at the beginning andthe end of the window. The truncated portions of the window aredetermined in previous and subsequent windows. This approach hasconsiderable complexity, especially when the channel delay spread islarge. The large window size leads to large dimensions on the matricesand vectors used in the data estimation. Additionally, this approach isnot computationally efficient by detection data at the beginning and atthe ends of the window and then discarding that data.

Accordingly, it is desirable to have alternate approaches to datadetection.

SUMMARY

Data estimation is performed in a wireless communication system usingboth oversampling and multiple reception antennas. A receive vector isproduced for each antenna at a sampling interval which is a multiple ofthe chip rate of the received signal. A channel response matrix isproduced for each antenna at a preferred multiple of the sampling rate.Each receive vector is processed using a sliding window based approach,where a plurality of successive windows are processed. For each window,a combined circulant channel response matrix is produced using thechannel response matrices. Using the combined circulant channel responsematrix and a combined received vector comprising each received vector ina discrete Fourier transform based approach to estimate a data vectorcorresponding to that window; and combining the data vector estimated ineach window to form a combined data vector.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a banded channel response matrix.

FIG. 2 is an illustration of a center portion of the banded channelresponse matrix.

FIG. 3 is an illustration of a data vector window with one possiblepartitioning.

FIG. 4 is an illustration of a partitioned signal model.

FIG. 5 is a flow diagram of sliding window data detection using a pastcorrection factor.

FIG. 6 is a receiver using sliding window data detection using a pastcorrection factor.

FIG. 7 is a flow diagram of sliding window data detection using a noiseauto-correlation correction factor.

FIG. 8 is a receiver using sliding window data detection using a noiseauto-correlation correction factor.

FIG. 9 is a graphical representation of the sliding window process.

FIG. 10 is a graphical representation of the sliding window processusing a circulant approximation.

FIG. 11 is a circuit for an embodiment for detecting data using discreteFourier transforms (DFTs).

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Although the features and elements of the present invention aredescribed in the preferred embodiments in particular combinations, eachfeature or element can be used alone (without the other features andelements of the preferred embodiments) or in various combinations withor without other features and elements of the present invention.

Hereafter, a wireless transmit/receive unit (WTRU) includes but is notlimited to a user equipment, mobile station, fixed or mobile subscriberunit, pager, or any other type of device capable of operating in awireless environment. When referred to hereafter, a base stationincludes but is not limited to a Node-B, site controller, access pointor any other type of interfacing device in a wireless environment.

Although reduced complexity sliding window equalizer is described inconjunction with a preferred wireless code division multiple accesscommunication system, such as CDMA2000 and universal mobile terrestrialsystem (UMTS) frequency division duplex (FDD), time division duplex(TDD) modes and time division synchronous CDMA (TD-SCDMA), it can beapplied to various communication system and, in particular, variouswireless communication systems. In a wireless communication system, itcan be applied to transmissions received by a WTRU from a base station,received by a base station from one or multiple WTRUs or received by oneWTRU from another WTRU, such as in an ad hoc mode of operation.

The following describes the implementation of a reduced complexitysliding window based equalizer using a preferred MMSE algorithm.However, other algorithms can be used, such as a zero forcing algorithm.h(•) is the impulse response of a channel. d(k) is the k^(th)transmitted sample that is generated by spreading a symbol using aspreading code. It can also be sum of the chips that are generated byspreading a set of symbols using a set of codes, such as orthogonalcodes. r(•) is the received signal. The model of the system canexpressed as per Equation 4. $\begin{matrix}{{r(t)} = {{{\sum\limits_{k = {- \infty}}^{\infty}\quad{{d(k)}{h\left( {t - {kT}_{c}} \right)}}} + {n(t)}\quad - \infty} < t < \infty}} & {{Equation}\quad 4}\end{matrix}$

n(t) is the sum of additive noise and interference (intra-cell andinter-cell). For simplicity, the following is described assuming chiprate sampling is used at the receiver, although other sampling rates maybe used, such as a multiple of the chip rate. The sampled receivedsignal can be expressed as per Equation 5. $\begin{matrix}{{{r(j)} = {{{\sum\limits_{k = {- \infty}}^{\infty}\quad{{d(k)}{h\left( {j - k} \right)}}} + {n(j)}} = {{\sum\limits_{k = {- \infty}}^{\infty}\quad{{d\left( {j - k} \right)}{h(k)}}} + {n(j)}}}},{j \in \left\{ {\ldots\quad,{- 2},{- 1},0,1,2,\ldots} \right\}}} & {{Equation}\quad 5}\end{matrix}$T_(c) is being dropped for simplicity in the notations.

Assuming h(•) has a finite support and is time invariant. This meansthat in the discrete-time domain, index L exists such that h(i)=0 fori<0 and i≧L. As a result, Equation 5 can be re-written as Equation 6.$\begin{matrix}{{{r(j)} = {{\sum\limits_{k = 0}^{L - 1}\quad{{h(k)}{d\left( {j - k} \right)}}} + {n(j)}}},{j \in \left\{ {\ldots\quad,{- 2},{- 1},0,1,2,\ldots} \right\}}} & {{Equation}\quad 6}\end{matrix}$

Considering that the received signal has M received signals r(0), . . ., r(M−1), Equation 7 results.r=Hd+nwhere, $\begin{matrix}{{{r = {\left\lbrack {{r(0)},\cdots,{r\left( {M - 1} \right)}} \right\rbrack^{T} \in C^{M}}},{d = {\left\lbrack {{d\left( {{- L} + 1} \right)},{d\left( {{- L} + 2} \right)},\ldots\quad,{d(0)},{d(1)},\ldots\quad,{d\left( {M - 1} \right)}} \right\rbrack^{T} \in C^{{M + L} = 1}}}}{n = {\left\lbrack {{n(0)},\cdots\quad,{n\left( {M - 1} \right)}} \right\rbrack^{T} \in C^{M}}}{H = {\left\lbrack \begin{matrix}{h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(1)} & {h(0)} & 0 & \cdots & \cdots \\0 & {h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(1)} & {h(0)} & 0 & \cdots \\\vdots & ⋰ & ⋰ & ⋰ & ⋰ & ⋰ & ⋰ & \vdots \\\cdots & \cdots & 0 & {h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(1)} & {h(0)}\end{matrix}\quad \right\rbrack \in C^{M \times {M{({M + L -})}}}}}} & {{Equation}\quad 7}\end{matrix}$

In Equation 7, C^(M) represents the space of all complex vectorsdimension M.

Part of the vector d can be determined using an approximate equation.Assuming M>L and defining N=M−L+1, vector d is per Equation 8.$\begin{matrix}{d = {\left\lbrack {\underset{\underset{L - 1}{︸}}{{d\left( {{- L} + 1} \right)},{d\left( {{- L} + 2} \right)},\ldots\quad,{d\left( {- 1} \right)},}\underset{\underset{N}{︸}}{{d(0)},{d(1)},\ldots\quad,{d\left( {N - 1} \right)},}\underset{\underset{L - 1}{︸}}{{d(N)},\ldots\quad,{d\left( {N + L - 2} \right)}}} \right\rbrack^{T} \in C^{N + {2\quad L} - 2}}} & {{Equation}\quad 8}\end{matrix}$

The H matrix in Equation 7 is a banded matrix, which can be representedas the diagram in FIG. 1. In FIG. 1, each row in the shaded arearepresents the vector [h(L−1), h(L−2), . . . , h(1), h(0)], as shown inEquation 7.

Instead of estimating all of the elements in d, only the middle Nelements of d are estimated. {tilde over (d)} is the middle N elementsas per Equation 9.{tilde over (d)}=[d(0), . . . , d(N−1)]^(T)   Equation 9

Using the same observation for r, an approximate linear relation betweenr and {tilde over (d)} is per Equation 10.r={tilde over (H)}{tilde over (d)}+n   Equation 10

Matrix {tilde over (H)} can be represented as the diagram in FIG. 2 oras per Equation 11. $\begin{matrix}{\overset{\sim}{H} = \begin{bmatrix}{h(0)} & 0 & \cdots & \quad \\{h(1)} & {h(0)} & ⋰ & \quad \\\vdots & {h(1)} & ⋰ & 0 \\{h\left( {L - 1} \right)} & \vdots & ⋰ & {h(0)} \\0 & {h\left( {L - 1} \right)} & ⋰ & {h(1)} \\\vdots & 0 & ⋰ & \vdots \\\quad & \vdots & ⋰ & {h\left( {L - 1} \right)}\end{bmatrix}} & {{Equation}\quad 11}\end{matrix}$

As shown, the first L−1 and the last L−1 elements of r are not equal tothe right hand side of the Equation 10. As a result, the elements at thetwo ends of vector {tilde over (d)} will be estimated less accuratelythan those near the center. Due to this property, a sliding windowapproach, as described subsequently, is preferably used for estimationof transmitted samples, such as chips.

In each k^(th) step of the sliding window approach, a certain number ofthe received samples are kept in r [k] with dimension N+L−1. They areused to estimate a set of transmitted data {tilde over (d)}[k] withdimension N using equation 10. After vector {tilde over (d)}[k] isestimated, only the “middle” part of the estimated vector {tilde over({circumflex over (d)})}[k] is used for the further data processing,such as by despreading. The “lower” part (or the later in-time part) of{tilde over (d)}[k] is estimated again in the next step of the slidingwindow process in which r [k+1] has some of the elements r [k] and somenew received samples, i.e. it is a shift (slide) version of r [k].

Although, preferably, the window size N and the sliding step size aredesign parameters, (based on delay spread of the channel (L), theaccuracy requirement for the data estimation and the complexitylimitation for implementation), the following using the window size ofEquation 12 for illustrative purposes.N=4N _(s) ×SF   Equation 12SF is the spreading factor. Typical window sizes are 5 to 20 timeslarger than the channel impulse response, although other sizes may beused.

The sliding step size based on the window size of Equation 12 is,preferably, 2N_(s)×SF. N_(s)ε{1, 2, . . . } is, preferably, left as adesign parameter. In addition, in each sliding step, the estimated chipsthat are sent to the despreader are 2N_(s)×SF elements in the middle ofthe estimated {circumflex over (d)}[k]. This procedure is illustrated inFIG. 3.

In the sliding window approach described above, the system model isapproximated by throwing away some terms in the model. In the following,a technique is described where terms are kept by either using theinformation estimated in previous sliding step or characterizing theterms as noise in the model. The system model is corrected using thekept/characterized terms.

One algorithm of data detection uses an MMSE algorithm with model errorcorrection uses a sliding window based approach and the system model ofEquation 10.

Due to the approximation, the estimation of the data, such as chips, haserror, especially, at the two ends of the data vector in each slidingstep (the beginning and end). To correct this error, the H matrix inEquation 7 is partitioned into a block row matrix, as per Equation 13,(step 50).H=[H _(p) |{tilde over (H)}|H _(f)]  Equation 13

Subscript “p” stands for “past”, and “f” stands for “future”. {tildeover (H)} is as per Equation 10. H_(p) is per Equation 14.$\begin{matrix}{H_{p} = {\begin{bmatrix}{h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(1)} \\0 & {h\left( {L - 1} \right)} & \cdots & {h(2)} \\\vdots & ⋰ & ⋰ & \vdots \\0 & \cdots & 0 & {h\left( {L - 1} \right)} \\0 & \cdots & \cdots & 0 \\\vdots & \vdots & \vdots & \vdots \\0 & \cdots & \cdots & 0\end{bmatrix} \in C^{{({N + L - 1})} \times {({L - 1})}}}} & {{Equation}\quad 14}\end{matrix}$

H_(f) is per Equation 15. $\begin{matrix}{H_{f} = {\begin{bmatrix}0 & \cdots & \cdots & 0 \\\vdots & \vdots & \vdots & \vdots \\0 & \cdots & \cdots & 0 \\{h(0)} & 0 & \cdots & 0 \\\vdots & ⋰ & ⋰ & 0 \\{h\left( {L - 3} \right)} & \cdots & {h(0)} & 0 \\{h\left( {L - 2} \right)} & {h\left( {L - 3} \right)} & \cdots & {h(0)}\end{bmatrix} \in C^{{({N + L -})} \times {({L - 1})}}}} & {{Equation}\quad 15}\end{matrix}$

The vector d is also partitioned into blocks as per Equation 16.d=[d _(p) ^(T)|{tilde over (d)}^(T) |d _(f) ^(T)]^(T)   Equation 16

{tilde over (d)} is the same as per Equation 8 and d_(p) is per Equation17.d _(p) =[d(−L+1) d(−L+2) . . . d(−1)]^(T) εC ^(L−1)   Equation 17

d_(f) is per Equation 18.d _(f) =[d(N) d(N+1) . . . d(N+L−2)]^(T) εC ^(L−1)   Equation 18

The original system model is then per Equation 19 and is illustrated inFIG. 4.r=H _(p) d _(p)+{tilde over (H)}{tilde over (d)}+H _(f) d _(f) +n  Equation 19

One approach to model Equation 19 is per Equation 20.{tilde over (r)}={tilde over (H)}{tilde over (d)}+{tilde over (n)}₁where {tilde over (r)}=r−H _(p) d _(p) and {tilde over (n)}₁ =H _(f) d_(f) +n   Equation 20

Using an MMSE algorithm, the estimated data vector {tilde over({circumflex over (d)})} is per Equation 21.{tilde over ({circumflex over (d)})}=g _(d){tilde over (H)}^(H)(g_(d){tilde over (H)}{tilde over (H)}^(H)+Σ₁)⁻¹{tilde over ({circumflexover (r)})}  Equation 21

In Equation 21, gd is chip energy per Equation 22.E{d(i)d*(j)}=g _(d)δ_(ij)   Equation 22

{tilde over ({circumflex over (r)})} is per Equation 23.{tilde over ({circumflex over (r)})}=r−H _(p){circumflex over (d)}_(p)  Equation 23

{circumflex over (d)}_(p), is part of the estimation of {tilde over (d)}in the previous sliding window step. Σ₁ is the autocorrelation matrix ofñ₁, i.e., Σ₁=E{ñ₁ñ₁ ^(H)}. If assuming H_(f)d_(f) and n areuncorrelated, Equation 24 results.Σ₁ =g _(d) H _(f) H _(f) ^(H) +E{nn ^(H)}  Equation 24

The reliability of {circumflex over (d)}_(p) depends on the slidingwindow size (relative to the channel delay span L) and sliding stepsize.

This approach is also described in conjunction with the flow diagram ofFIG. 5 and preferred receiver components of FIG. 6, which can beimplemented in a WTRU or base station. The circuit of FIG. 6 can beimplemented on a single integrated circuit (IC), such as an applicationspecific integrated circuit (ASIC), on multiple IC's, as discretecomponents or as a combination of IC('s) and discrete components.

A channel estimation device 20 processes the received vector r producingthe channel estimate matrix portions, H_(p), {tilde over (H)} and H_(f),(step 50). A future noise auto-correlation device 24 determines a futurenoise auto-correlation factor, g_(d)H_(f)H_(f) ^(H), (step 52). A noiseauto-correlation device 22 determines a noise auto-correlation factor,E{nn^(H)}, (step 54). A summer 26 sums the two factors together toproduce Σ₁, (step 56).

A past input correction device 28 takes the past portion of the channelresponse matrix, H_(p), and a past determined portion of the datavector, {circumflex over (d)}_(p), to produce a past correction factor,H_(p){circumflex over (d)}_(p), (step 58). A subtractor 30 subtracts thepast correction factor from the received vector producing a modifiedreceived vector, {tilde over ({circumflex over (r)})}, (step 60). AnMMSE device 34 uses Σ₁, {tilde over (H)}, and {tilde over ({circumflexover (r)})} to determine the received data vector center portion {tildeover ({circumflex over (d)})}, such as per Equation 21, (step 62). Thenext window is determined in the same manner using a portion of {tildeover ({circumflex over (d)})} as {circumflex over (d)}_(p) in the nextwindow determination, (step 64). As illustrated in this approach, onlydata for the portion of interest, {tilde over ({circumflex over (d)})},is determined reducing the complexity involved in the data detection andthe truncating of unwanted portions of the data vector.

In another approach to data detection, only the noise term is corrected.In this approach, the system model is per Equation 25.r={tilde over (H)}{tilde over (d)}+{tilde over (n)}₂, where {tilde over(n)}₂ =H _(p) d _(p) +H _(f) d _(f) +n   Equation 25

Using an MMSE algorithm, the estimated data vector {tilde over({circumflex over (d)})} is per Equation 26.{tilde over ({circumflex over (d)})}=g _(d){tilde over (H)}^(H)(g_(d){tilde over (H)}{tilde over (H)}^(H)+Σ₂)⁻¹ r   Equation 26

Assuming H_(p)d_(p), H_(f)d_(f) and n are uncorrelated, Equation 27results.Σ₂ =g _(d) H _(p) H _(p) ^(H) +g _(d) H _(f) H _(f) ^(H) +E{nn^(H)}  Equation 27

To reduce the complexity in solving Equation 26 using Equation 27, afull matrix multiplication for H_(p)H_(p) ^(H) and H_(f)H_(f) ^(H) arenot necessary, since only the upper and lower corner of H_(p) and H_(f),respectively, are non-zero, in general.

This approach is also described in conjunction with the flow diagram ofFIG. 7 and preferred receiver components of FIG. 8, which can beimplemented in a WTRU or base station. The circuit of FIG. 8 can beimplemented on a single integrated circuit (IC), such as an applicationspecific integrated circuit (ASIC), on multiple IC's, as discretecomponents or as a combination of IC('s) and discrete components.

A channel estimation device 36 processes the received vector producingthe channel estimate matrix portions, H_(p), {tilde over (H)} and H_(f),(step 70). A noise auto-correlation correction device 38 determines anoise auto-correlation correction factor, g_(d)H_(p)H_(p)^(H)+g_(d)H_(f)H_(f) ^(H), using the future and past portions of thechannel response matrix, (step 72). A noise auto correlation device 40determines a noise auto-correlation factor, E{nn^(H)}, (step 74). Asummer 42 adds the noise auto-correlation correction factor to the noiseauto-correlation factor to produce Σ₂, (step 76). An MMSE device 44 usesthe center portion or the channel response matrix, {tilde over (H)}, thereceived vector, r, and Σ₂ to estimate the center portion of the datavector, {tilde over ({circumflex over (d)})}, (step 78). One advantageto this approach is that a feedback loop using the detected data is notrequired. As a result, the different slided window version can bedetermined in parallel and not sequentially.

Discrete Fourier Transform Based Equalization

The sliding window approach described above requires a matrix inversion,which is a complex process. One embodiment for implementing a slidingwindow utilizes discrete Fourier transforms (DFTs), as follows. Althoughthe preferred implementation of the DFT based approach is with a MMSEalgorithm, it can be applied to other algorithms, such as a zero forcing(ZF) based algorithm.

A matrix A_(cir)εC^(N×N), for some integer N, is a circulant matrix ifit has the following form per Equation 28. $\begin{matrix}{A_{cir} = \begin{bmatrix}a_{1} & a_{N} & a_{N - 1} & \quad & a_{2} \\a_{2} & a_{1} & a_{N} & ⋰ & \vdots \\\vdots & a_{2} & a_{1} & ⋰ & a_{N - 1} \\\vdots & \vdots & a_{2} & ⋰ & a_{N} \\a_{N} & a_{N - 1} & \vdots & \quad & a_{1}\end{bmatrix}} & {{Equation}\quad 28}\end{matrix}$

This kind of matrix is expressed using the DFT and the IDFT operators,such as per Equation 29.A _(cir) =F _(N) ⁻¹Λ(A _(cir)[:,1])F _(N)where, A _(cir)[:,1]=(a ₀ , a ₁ , . . . , a _(N))^(T) εC ^(N), i.e. itis the first column of matrix A_(cir)   Equation 29Columns other than the first column can be used if properly permuted.F_(N) is the N-point DFT matrix which is defined as, for any xεC^(N), asper Equation 30. $\begin{matrix}{{\left( {F_{N}x} \right)_{k} = {{\sum\limits_{n = 0}^{N - 1}\quad{{x(n)}{\mathbb{e}}^{j\frac{2\quad\pi\quad{kn}}{N}}\quad k}} = 0}},\ldots\quad,{N - 1}} & {{Equation}\quad 30}\end{matrix}$F_(N) ⁻¹ is the N-point inverse DFT matrix which is defined as, for anyxεC^(N), as per Equation 31. $\begin{matrix}{{\left( {F_{N}^{- 1}x} \right)_{k} = {{\frac{1}{N}\left( {F_{N}^{*}x} \right)_{k}} = {{\frac{1}{N}{\sum\limits_{n = 0}^{N - 1}{{x(n)}{\mathbb{e}}^{{- j}\frac{2\quad\pi\quad{kn}}{N}}\quad k}}} = 0}}},\ldots\quad,{N - 1}} & {{Equation}\quad 31}\end{matrix}$Λ_(N)(•) is a diagonal matrix, which is defined as, for any xεC^(N), asper Equation 32.Λ_(N)(x)=diag(F _(N) x)   Equation 32

The inverse of matrix A_(cir) is expressed, such as per Equation 33.A _(cir) ⁻¹ =F _(N) ⁻¹Λ_(N) ⁻¹(A _(cir)[:,1])F _(N)   Equation 33

The following is an application of a DFT based approach to the dataestimation process using the sliding window based chip level equalizer.The first embodiment uses a single receiving antenna. Subsequentembodiments use multiple receiving antennas.

The receiver system is modeled as per Equation 34. $\begin{matrix}{{r(t)} = {{{\sum\limits_{k = {- \infty}}^{\infty}\quad{{d(k)}{h\left( {t - {kT}_{c}} \right)}}} + {n(t)}\quad - \infty} < t < \infty}} & {{Equation}\quad 34}\end{matrix}$h(•) is the impulse response of the channel. d(k) is the kth transmittedchip samples that is generated by spreading symbols using a spreadingcode. r(•) is the received signal. n(•)is the sum of additive noise andinterference (intra-cell and inter-cell).

Using chip rate sampling and h(•) having a finite support, which means,in discrete-time domain, there is an integer L such that h(i)=0 for i<0and i≧L, the sampled received signal can be expressed (T_(c) is droppedfor simplicity of the notations), as per Equation 35. $\begin{matrix}{{r(j)} = {{{\sum\limits_{k = 0}^{L - 1}\quad{{h(k)}{d\left( {j - k} \right)}}} + {{n(j)}\quad j}} \in \left\{ {\ldots\quad,{- 2},{- 1},0,1,{2\ldots}}\quad \right\}}} & {{Equation}\quad 35}\end{matrix}$

Based on M (M>L) received signals r(0), . . . , r(M−1), Equation 36results.r=Hd+nwhere $\begin{matrix}{{{r = {\left\lbrack {{r(0)},\ldots\quad,{r\left( {M - 1} \right)}} \right\rbrack^{T} \in C^{M}}},{d = {\left\lbrack {{d\left( {{- L} + 1} \right)},{d\left( {{- L} + 2} \right)},\ldots\quad,{d(0)},{d(1)},\ldots\quad,{d\left( {M - 1} \right)}} \right\rbrack^{T} \in C^{{M + L} = 1}}}}{n = {\left\lbrack {{n(0)},\ldots\quad,{n\left( {M - 1} \right)}} \right\rbrack^{T} \in C^{M}}}{H = {\left\lbrack \begin{matrix}{h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(1)} & {h(0)} & 0 & \cdots & \cdots \\0 & {h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(1)} & {h(0)} & 0 & \cdots \\\vdots & ⋰ & ⋰ & ⋰ & ⋰ & ⋰ & ⋰ & \vdots \\\cdots & \cdots & 0 & {h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(1)} & {h(0)}\end{matrix}\quad \right\rbrack \in C^{M \times {({M + L - 1})}}}}} & {{Equation}\quad 36}\end{matrix}$

As illustrated by Equation 36, the H matrix is Toeplitz. As describedsubsequently in the application for multiple chip rate sampling and/ormultiple receive antennas, the H matrix is block Toeplitz. Using theblock Toeplitz property, discrete Fourier transform techniques can beapplied. The Toeplitz/block Toeplitz nature is produced as a result ofthe convolution with one channel or the convolution of the input signalwith a finite number of effective parallel channels. The effectiveparallel channels appear as a result of either oversampling or multiplereceive antennas. For one channel, a single row is essentially slidedown and to the right producing a Toeplitz matrix.

The statistics of the noise vector are treated as having theautocorrelation property, per Equation 37.E{nn ^(H)}=σ² I   Equation 37

The left hand side of equation (5) can be viewed as a “window” ofcontinuous input signal stream. To estimate the data, an approximatedmodel is used. In this approximated model, the first L−1 and the lastL−1 elements of vector d are assumed to be zero before applying the MMSEalgorithm and the reset M−L+1 elements of d forms a new vector {tildeover (d)}=[d(0), . . . , d(M−L+1)]^(T). The approximated model can beexpressed explicitly as per Equation 38. $\begin{matrix}{{r = {{\overset{\sim}{H}\overset{\sim}{d}} + n}}{{{where}\quad\overset{\sim}{H}} = {\begin{bmatrix}{h(0)} & 0 & \cdots & \quad \\{h(1)} & {h(0)} & ⋰ & \quad \\\vdots & {h(1)} & ⋰ & 0 \\{h\left( {L - 1} \right)} & \vdots & ⋰ & {h(0)} \\0 & {h\left( {L - 1} \right)} & ⋰ & {h(1)} \\\vdots & 0 & ⋰ & \vdots \\\quad & \vdots & ⋰ & {h\left( {L - 1} \right)}\end{bmatrix}.}}} & {{Equation}\quad 38}\end{matrix}$

After the vector {tilde over (d)} is estimated, only the middle part ofit is taken for de-spreading. Subsequently, the window of observation(i.e. the received signal) is slid by (M−L+1)/2 elements and the processis repeated. FIG. 9 is a graphical representation of the sliding windowprocess, as described above.

Using MMSE algorithm, the estimated data is expressed per Equation 39.{tilde over ({circumflex over (d)})}R ⁻¹{tilde over (H)}^(H) rwhere R={tilde over (H)}^(H){tilde over (H)}+σ² I   Equation 39

In Equation 39, neither the matrix R nor the matrix {tilde over (H)} iscirculant to facilitate a DFT implementation. To facilitate a DFTimplementation, for each sliding step, the approximated system model perEquation 40 is used. $\begin{matrix}{{r = {{\overset{\Cup}{H}\overset{\Cup}{d}} + n}}{{{where}\quad\overset{\Cup}{\quad H}} = {\left\lbrack \begin{matrix}{h(0)} & 0 & \cdots & \quad & \quad & \quad & \quad \\{h(1)} & {h(0)} & ⋰ & \quad & \quad & \quad & \quad \\\vdots & {h(1)} & ⋰ & 0 & \quad & \quad & \quad \\{h\left( {L - 1} \right)} & \vdots & ⋰ & {h(0)} & 0 & \quad & \quad \\0 & {h\left( {L - 1} \right)} & ⋰ & {h(1)} & {h(0)} & ⋰ & \quad \\\vdots & 0 & ⋰ & \vdots & \vdots & ⋰ & 0 \\\quad & \vdots & ⋰ & {h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(0)}\end{matrix}\quad \right\rbrack \in C^{M \times M}}}{\overset{\Cup}{d} = {\left\lbrack {{d(0)},\ldots\quad,{d\left( {M - 1} \right)}} \right\rbrack^{T} \in C^{M \times 1}}}} & {{Equation}\quad 40}\end{matrix}$In Equation 40, only the first L−1 elements (equations) areapproximations of those of Equation 36.

The matrix {hacek over (H)} is replaces by a circulant matrix, such asper Equation 41. $\begin{matrix}{H_{cir} = \quad\left\lbrack \quad\begin{matrix}{h(0)} & 0 & \cdots & 0 & {h\left( {L - 1} \right)} & \cdots & {h(1)} \\{h(1)} & {h(0)} & ⋰ & \vdots & 0 & ⋰ & \vdots \\\vdots & {h(1)} & ⋰ & 0 & \vdots & \quad & {h\left( {L - 1} \right)} \\{h\left( {L - 1} \right)} & \vdots & ⋰ & {h(0)} & 0 & ⋰ & 0 \\0 & {h\left( {L - 1} \right)} & ⋰ & {h(1)} & {h(0)} & ⋰ & \vdots \\\vdots & 0 & ⋰ & \vdots & \vdots & ⋰ & 0 \\0 & \vdots & ⋰ & {h\left( {L - 1} \right)} & {h\left( {L - 2} \right)} & \cdots & {h(0)}\end{matrix} \right\rbrack} & {{Equation}\quad 41}\end{matrix}$

The system model, for each sliding step, is per Equation 42.r=H _(cir) d+nwith d=[d(0), . . . , d(M−1)]^(T) εC ^(M×1)   Equation 42The vector d in Equation 42, due to the new model, is different than thevector d in Equation 36. Equation 42 adds additional distortion to thefirst L−1 element of Equation 39. This distortion makes the two ends ofthe estimated vector d inaccurate. FIG. 10 is a graphical representationof the model construction process.

Using approximated model per Equation 42, the MMSE algorithm yields theestimated data as per Equation 43.{circumflex over (d)}=R _(cir) ⁻¹ H _(cir) ^(H) rwhere R _(cir) =H _(cir) ^(H) H _(cir)+σ² I   Equation 43Both H_(cir) ^(H) and R_(cir) are circulant and R_(cir) is of the formper Equation 44. $\begin{matrix}{R_{cir} = \begin{bmatrix}R_{0} & R_{1} & \cdots & R_{L - 1} & 0 & 0 & \cdots & \quad & \quad & \quad & R_{2}^{*} & R_{1}^{*} \\R_{1}^{*} & R_{0} & ⋰ & \quad & R_{L - 1} & 0 & ⋰ & \quad & \quad & \quad & \vdots & \quad \\\vdots & R_{1}^{*} & ⋰ & R_{1} & \quad & R_{L - 1} & ⋰ & 0 & \quad & \quad & R_{L - 1}^{*} & \vdots \\R_{L - 1}^{*} & \quad & ⋰ & R_{0} & R_{1} & \quad & ⋰ & 0 & 0 & \quad & 0 & R_{L - 1}^{*} \\0 & R_{L - 1}^{*} & \quad & R_{1}^{*} & R_{0} & ⋰ & \quad & R_{L - 1} & 0 & \quad & \vdots & 0 \\\vdots & 0 & ⋰ & \quad & R_{1}^{*} & ⋰ & ⋰ & \quad & R_{L - 1} & ⋰ & 0 & \vdots \\0 & \vdots & ⋰ & R_{L - 1}^{*} & \quad & ⋰ & ⋰ & R_{1} & \quad & ⋰ & 0 & 0 \\R_{L - 1} & 0 & ⋰ & 0 & R_{L - 1}^{*} & \quad & ⋰ & R_{0} & R_{1} & \quad & R_{L - 1} & 0 \\\vdots & R_{L - 1} & \quad & \vdots & 0 & R_{L - 1}^{*} & \quad & R_{1}^{*} & R_{0} & ⋰ & \quad & R_{L - 1} \\\vdots & \vdots & \quad & \quad & 0 & 0 & ⋰ & \quad & R_{1} & ⋰ & R_{1} & \quad \\\vdots & \vdots & ⋰ & \quad & \quad & 0 & ⋰ & R_{L - 1}^{*} & \quad & ⋰ & R_{0} & R_{1} \\R_{1} & R_{2} & \cdots & 0 & \quad & \cdots & 0 & 0 & R_{L - 1}^{*} & \cdots & R_{1}^{*} & R_{0}\end{bmatrix}} & {{Equation}\quad 44}\end{matrix}$

Applying the properties of circulant matrices, the estimated data is perEquation 45.{circumflex over (d)}F _(M) ⁻¹Λ_(M) ⁻¹(R _(cir)[:,1])Λ_(M)(H _(cir)^(H)[:,1])F _(M) r   Equation 45

FIG. 11 is a diagram of a circuit for estimating the data per Equation45. The circuit of FIG. 11 can be implemented on a single integratedcircuit (IC), such as an application specific integrated circuit (ASIC),on multiple IC's, as discrete components or as a combination of IC('s)and discrete components.

The estimated channel response {tilde over (H)} is processed by an{hacek over (H)} determination device 80 to determine the Toeplitzmatrix {hacek over (H)}. A circulant approximation device 82 processes{hacek over (H)} to produce a circulant matrix H_(cir). A Hermitiandevice 84 produces the Hermitian of H_(cir), H_(cir) ^(H). UsingH_(cir), H_(cir) ^(H) and the noise variance σ², R_(cir) is determinedby a R_(cir) determining device 86. Using a first column of H_(cir)^(H), a diagonal matrix is determined by a Λ_(M)(H_(cir) ^(H)[:,1])determining device 88. Using a first column of R_(cir), an inversediagonal matrix is determined by a Λ_(M) ⁻¹(R_(cir)[:,1]) determinationdevice 90. A discrete Fourier transform device 92 performs a transformon the received vector, r. The diagonal, inverse diagonal and Fouriertransform result are multiplied together by a multiplier 96. An inverseFourier transform device 94 takes an inverse transform of the result ofthe multiplication to produce the data vector {circumflex over (d)}.

The sliding window approach is based on an assumption that the channelis invariant within each sliding window. The channel impulse responsenear the beginning of the sliding window may be used for each slidingstep.

One preferred approach for determining the window step size N_(ss) andwindow size M is per Equation 46, although others may be used.N _(ss)=2N _(symbol) ×SF and M=4N _(symbol) ×SF   Equation 46N_(symbol)ε{1, 2, . . . } is the number of symbols and is a designparameter which should be selected, such that M>L. Since M is also theparameter for DFT which may be implemented using FFT algorithm. M may bemade large enough such that the radix-2 FFT or a prime factor algorithm(PFA) FFT can be applied. After the data is estimated, 2N_(symbol)×SFsamples are taken to process despreading starting fromN_(symbol)×SF^(th) sample. FIG. 11 is an illustration of taking thesamples for despreading.

Multiple Receive Antenna Equalization

The following is an embodiment using multiple receive antennas, such asK receive antennas. Samples of the received vector and estimates of thechannel impulse response are taken for each antenna independently.Following the same process as for the single antenna embodiment, eachantenna input, r_(k), is approximated per Equation 47.r _(k) =H _(cir,k) d+n _(k) for k=1, . . . , K   Equation 47or in block matrix form per Equation 48 $\begin{matrix}{\left\lbrack \frac{\frac{r_{1}}{r_{2}}}{\frac{\vdots}{r_{K}}} \right\rbrack = {{\left\lbrack \frac{\frac{H_{{cir},1}}{H_{{cir},2}}}{\frac{\vdots}{H_{{cir},K}}} \right\rbrack d} + \left\lbrack \frac{\frac{n_{1}}{n_{2}}}{\frac{\vdots}{n_{K}}} \right\rbrack}} & {{Equation}\quad 48}\end{matrix}$

Equations 49 and 50 are estimates of the auto-correlation andcross-correlation properties of the noise terms.E{n _(k) n _(k) ^(H)}=σ² I for k=1, . . . , K   Equation 49andE{n _(k) n _(j) ^(H)}=0 for k≠j   Equation 50

Applying MMSE algorithm, the estimated data can be expressed as perEquation 51. $\begin{matrix}{{\hat{d} = {R_{cir}^{- 1}{\sum\limits_{k = 1}^{K}\quad{H_{{cir},k}^{H}r_{k}}}}}{{{where}\quad R_{cir}} = {{\sum\limits_{k = 1}^{K}\quad{H_{{cir},k}^{H}H_{{cir},k}}} + {\sigma^{2}I}}}} & {{Equation}\quad 51}\end{matrix}$R_(cir) is still a circulant matrix and the estimated data can bedetermined per Equation 52. $\begin{matrix}{\hat{d} = {F_{M}^{- 1}{\Lambda_{M}^{- 1}\left( {R_{cir}\left\lbrack {\text{:},1} \right\rbrack} \right)}{\sum\limits_{k = 1}^{K}{{\Lambda_{M}\left( {H_{{cir},k}^{H}\left\lbrack {\text{:},1} \right\rbrack} \right)}F_{M}r_{k}}}}} & {{Equation}\quad 52}\end{matrix}$

If the receive antennas are positioned close to each other, the noiseterms may be correlated in both time and space. As a result, somedegradation in the performance may result.

Multiple Chip Rate Sampling (Oversampling) Equalization

The following describes embodiments using a sliding window basedequalization approach with multiple chip rate sampling. Multiple chiprate sampling is when the channel is sampled at a sampling rate which isan integer multiple of the chip rate, such as two times, three times,etc. Although the following concentrates on two times per chip sampling,these approaches can be applied to other multiples.

Using a sliding window of width of N chips and two time chip ratesampling, our received vector is r=[r₀, r₁, . . . , r_(2N−1)]^(T). Thisvector may be rearranged and separated into an even received vectorr_(e)=[r₀, r₂, . . . , r_(2N−2)]^(T) and an odd received vectorr_(o)=[r₁, r₃, . . . , r_(2N−1)]^(T), with r=[r_(e),r_(o)]^(T). Withoutloss of generality, the data transmission model is per Equation 53.$\begin{matrix}{\begin{bmatrix}r_{e} \\r_{o}\end{bmatrix} = {{\begin{bmatrix}H_{e} \\H_{o}\end{bmatrix}d} + \begin{bmatrix}n_{e} \\n_{o}\end{bmatrix}}} & {{Equation}\quad 53}\end{matrix}$Equation 53 separates the effective 2-sample-per-chip discrete-timechannel into two chip-rate discrete-time channels.

The matrices H_(e) and H_(o) in Equation 53 are, correspondingly, theeven and odd channel response matrices. These matrices are constructedfrom the even and odd channel response vectors h_(e) and h_(o), whichare obtained by sampling the channel response at 2 samples per chip andseparating it into the even and odd channel response vectors.

The channel noise is modeled as white with a variance σ², as perEquation 54.E[n _(e) n _(e) ^(H) ]=E[n _(o) n _(o) ^(H)]=σ² I   Equation 54

If the channel is an additive white Gaussian noise (AWGN) channel andthe received data is provided directly from the sampled channel, thenEquation 55 results.E[n _(e) n _(o) ^(H)]=0   Equation 55

As a result, the problem is mathematically similar to the case of thechip-rate equalizer for 2 receive antennas with uncorrelated noise, aspreviously described. However, the received antenna signals in manyimplementations are processed by a receive-side root-raised cosine (RRC)filter before being provided to the digital receiver logic for furtherprocessing. Following such processing, the received noise vector is nolonger white, but has a raised-cosine (RC) autocorrelation function. RCis the frequency-domain square of a RRC response. Since the RC pulse isa Nyquist pulse, Equation 54 holds, however Equation 55 does not. The(i,j)^(th) element of the matrix$\Lambda_{cross}\overset{def}{=}{\frac{1}{\sigma^{2}}{E\left\lbrack {n_{e}n_{o}^{H}} \right\rbrack}}$is per Equation 56. $\begin{matrix}{{\frac{1}{\sigma^{2}}{E\left\lbrack {n_{e}n_{o}^{H}} \right\rbrack}_{({i,j})}} = {x_{RC}\left( {{{i - j}} + 0.5} \right)}} & {{Equation}\quad 56}\end{matrix}$x_(RC) is the unity-symbol-time normalized RC pulse shape.

Properties of Λ_(cross) are it is real, symmetric and Toeplitz; it isnot banded and has no zero entries and its entries do get smaller andtend to 0 as they get farther and farther away from the main diagonal.

Σ_(n) represent the cross-correlation matrix of the total noise vectorand is per Equation 57. $\begin{matrix}{\sum\limits_{n}{= {\sigma^{2}\begin{bmatrix}I & \sum\limits_{cross} \\\sum\limits_{cross} & I\end{bmatrix}}}} & {{Equation}\quad 57}\end{matrix}$

Exact Solution

The exact solution to the problem of linear minimum mean-squareestimation of d from the observation of r is per Equation 58.{circumflex over (d)} _(MMSE)=(H ^(H)Σ_(n) ⁻¹ H+I)⁻¹ H ^(H)Σ_(n) ⁻¹ rwhere y=H^(H)Σ_(n) ⁻¹r is the whitening matched filtering (WMF){circumflex over (d)} _(MMSE)=(H ^(H)Σ_(n) ⁻¹ H+I)⁻¹ y is the linearMMSE equalization   Equation 58

Neither H^(H)Σ_(n) ⁻¹ nor H^(H)Σ_(n) ⁻¹H+I are Toeplitz and neither canbe made Toeplitz through elemental unitary operations (e.g. row/columnre-arrangements), due to the structure of Σ_(n). Accordingly, DFT-basedmethods based on circulant approximations of Toeplitz matrices cannot beapplied here and an exact solution is highly complex.

Two embodiments for deriving an efficient algorithm for solving thisproblem are described. The first embodiment uses a simple approximationand the second embodiment uses an almost-exact solution.

Simple Approximation

The simple approximation ignores the correlation between n_(e) andn_(o), Σ_(cross)=0. As a result, the same approach as multiple chip-ratereceive antennas is used.

The complexity of this simple approximation approach is as follows.N-chip data blocks are considered. For rough approximation, an N-pointDFT complexity, given by NlogN operations per second (ops), is assumed.Additionally, N-point vector multiplications are assumed to take N opsand vector additions are ignored.

The complexity of the DFT-based approach can be roughly partitioned into2 components: the processing which has to be performed on every receiveddata set and the processing which is performed when the channel estimateis updated, which is typically done one to two orders of magnitude lessfrequently then the former operation.

For processing performed on each received data set, the followingoperations are performed: 2 N-point DFTs to transform the receivedvector into the frequency domain; 2 N-point vector multiplications(multiply each received vector by the appropriate “state”vector”); andone more DFT to transform the result back into time domain. Thus, theapproximate complexity is per Equation 59.C _(1,r)=3NlogN+2N   Equation 59

For processing performed when the channel response is updated, thefollowing operations are performed: 2 DFT operations, 6 N-point vectormultiplies and a vector division, which need to be taken 10 times theoperations of a vector multiply. Thus, the complexity of this step isroughly given per Equation 60.C _(1,r)=2NlogN+16N   Equation 60

Almost Exact Solution

For the almost-exact solution which uses a block-Toeplitz solution, thevector and matrices are rearranged in their natural order, such that thevector r is given by r=[r₀, r₁, . . . , r_(2N−1)]^(T). Equation 61 isthe natural order model.r=H _(bT) d+nwhere H_(bT) is defined as $\begin{matrix}{H_{bT} = {\begin{bmatrix}h_{e,1} \\h_{o,1} \\\vdots \\h_{o,N}\end{bmatrix} = \begin{bmatrix}G_{1} \\G_{2} \\\vdots \\G_{N}\end{bmatrix}}} & {{Equation}\quad 61}\end{matrix}$h_(e,i) is the i^(th) row of H_(e) and h_(o,i) is the i^(th) row ofH_(o). G_(i) is a 2×N matrix whose 1^(st) row is h_(e,i) and whose2^(nd) row is h_(o,i). Using G_(i) [x,y] as the row-x, column-y elementof G_(i), H_(bT) is block-Toeplitz as illustrated in Equation 62.G _(i) [x,y]=G _(j) [x,y+(i−j)]provided that 1≦y+(i−j)≦N   Equation 62

The block-Toeplitz structure of H_(bT) follows immediately from theToeplitz structure of H_(e) and H_(o) and the row-rearrangement. Fromthe Toeplitz structure of I and Σ_(cross), the autocorrelation matrix ofthe noise in the re-defined problem is also block Toeplitz. Because thismatrix is also symmetric, it can be rewritten per Equation 63.Σ_(bT)=[Σ_(i,j)]_(1≦i,j≦N)where Σ_(i,j) are 2×2 matrices with the property thatΣ_(i,j)=Σ_(|i−j|)  Equation 63

Subsequently, block-circulant approximations to the block-Toeplitzmatrices are produced. Since the H_(bT) matrix is also banded, the blockcirculant approximation of H_(bT) is then obtained directly. However,Σ_(bT) is not banded and therefore it is not possible to produce ablock-circulant approximation directly from it. Since the elements ofΛ_(bT) tend to 0 as they get farther away from the main diagonal, abanded approximation to Σ_(bT) is per Equation 64.Σ_(bT)≈{tilde over (Σ)}_(bT)=[{tilde over (Σ)}_(i,j)]_(1≦i,j≦N)where {tilde over (Σ)}_(ij) are 2×2 matrices with the property that{tilde over (Σ)}_(i,j)=Σ_(|i−j|) if |i−j|≦B_(n) and {tilde over(Σ)}_(i,j)=0 otherwise   Equation 64The noise-covariance-bandwidth, B_(n), is a design parameters that isselected. Due to the decay properties of the RC pulse shape, it islikely to be only several chip. Now {tilde over (Σ)}_(bT) is bandedblock-Toeplitz and a circulant approximation to it is produced.

The circulant approximations of H_(bT) and {tilde over (Σ)}_(bT) areH_(bC) and Σ_(bC), respectively. W_(n) denotes the n-point DFT matrix,that is if x is an n-vector, then x_(f)=W_(n)x is the DFT of x. Ablock-circulant matrix C is of the form of Equation 65.$C = \begin{bmatrix}C_{1} & C_{2} & \cdots & C_{M} \\C_{2} & C_{3} & \cdots & C_{1} \\\vdots & \vdots & ⋰ & \vdots \\C_{M} & C_{1} & \cdots & C_{M - 1}\end{bmatrix}$  where C_(i) is an N×N matrix and therefore C is an MN×MNmatrix   Equation 65

C can also be written as Equation 66.C=W _(M×N) ⁻¹Λ_(M×N)(C)W _(M×N)where W_(M×N) is the block-N-DFT matrix defined as W _(M×N) =W_(M){circle around (×)}I _(N)   Equation 66Λ_(M×N)(C) is a block diagonal matrix that depends on C and is given byEquation 67. $\begin{matrix}{{A_{m \times N}(C)} = \begin{bmatrix}{\Lambda_{1}(C)} & \quad & \quad & \quad \\\quad & {\Lambda_{2}(C)} & \quad & \quad \\\quad & \quad & ⋰ & \quad \\\quad & \quad & \quad & {\Lambda_{M}(C)}\end{bmatrix}} & {{Equation}\quad 67}\end{matrix}$Λ_(i)(C) is an N×N matrix. To completely specify Λ_(i)(C), λ_(i,(k,l))denotes the (k,l)^(th) element of Λ_(i)(C) and is defined as λ_((k,l))

[λ_(1,(k,l)), λ_(2,(k,l)), . . . , λ_(M,(k,l))]^(T)·c_(i,(k,l)) denotesthe (k,l)^(th) element of C and is defined as c_((k,l))

[c_(1,(k,l)), c_(2,(k,l)), . . . , c_(M,(k,l))]^(T)·λ_((k,l)) is theM-point DFT of c_((k,l)) and is per Equation 68.λ_((k,l)) =W _(M) c _((k,l))   Equation 68

Equations 66-68 specify the block-DFT representation of square blockcirculant matrices. N² DFTs are required to compute Λ_(M×N)(C).

The MMSE estimator is rewritten per Equation 69.{circumflex over (d)}_(MMSE) =H ^(H)(Σ_(n) +HH ^(H))⁻¹ r   Equation 69

The MMSE estimator form as per Equation 68 has several advantages. Itrequires only a single inverse matrix computation and thus in the DFTdomain only a single vector division. This provides a potentiallysignificant savings as divisions are highly complex.

The almost-exact solution has two steps in the most preferredembodiment, although other approaches may be used. Every time a newchannel estimate is obtained, the channel filter is updated,(H^(H)(Σ_(n)+HH^(H))⁻¹ is determined). For every data block, this filteris applied to the received data block. This partition is utilizedbecause the channel is updated very infrequently compared to thereceived data block processing and therefore significant complexityreduction can achieved by separating the overall process into these twosteps.

The DFT of Σ_(n) is the DFT of the pulse shaping filter multiplied bythe noise variance σ². Since the pulse shaping filter is typically afixed feature of the system, its DFT can be precomputed and stored inmemory and thus only the value σ² is updated. Since the pulse-shapingfilter is likely to be close to the “ideal” (IIR) pulse shape, the DFTof the ideal pulse shape can be used for Σ_(n), reducing the complexityand is also far away from the carrier.

To channel update step, the following is performed:

1. The “block-DFT” of H needs to be computed. Since the block is ofwidth 2, it requires 2 DFTs. The result is a N×2 matrix whose rows arethe DFTs of h_(e) and h_(o).

2. The “block-DFT” of HH^(H) is computed by finding element-by-elementautocorrelations and the crosscorrelation of h_(e) and h_(o). Thisrequired 6N complex multiplies and 2N complex adds: the products of N2×2 matrices are computed with there own Hermitian transposes.

3. The block-DFT of Σ_(n) is added, which requires 3N multiplies (scalethe stored block-DFT of the RRC filter by σ²) and 3N adds to add theblock-DFT of the two matrices.

4. An inverse of Σ_(n)+HH^(H) is taken in the block-DFT domain. To dothis an inverse of each of the N 2×2 matrices is taken in the block-DFTdomain. To estimate the total number of operations, consider a Hermitianmatrix $M = {\begin{bmatrix}a & b \\b^{*} & a\end{bmatrix}.}$The inverse of this matrix is given per Equation 70. $\begin{matrix}{M^{- 1} = {\frac{1}{a^{2} - {b}^{2}}\begin{bmatrix}a & {- b} \\{- b^{*}} & a\end{bmatrix}}} & {{Equation}\quad 70}\end{matrix}$Accordingly, the complexity of computing each inverse involves 3 realmultiplications and 1 real subtraction (roughly 1 complex multiply) and1 real division.

5. The result are block-multiplied by the block-DFT of H^(H), which,takes a total of 8N multiplies+4N adds (since H^(H) is not Hermitian).

To summarize, the following computation are required: 2 N-point DFTs;18N complex multiplies (17 N-point vector multiplies+N stand-alonemultiplies); 11N complex adds (11 N-point vector adds); and 1N realdivisions.

The complexity of processing a data block r of 2N values (N chips long)involves: 2 N-point DFTs; one product of the N-point block-DFTs (filterand data), which required 8N complex multiplies and 4N complex adds; and1 N-point inverse DFTs.

To summarize, the following is required: 3 N-point DFTs; 8N complexmultiplies (8 N-point vector multiplies); and 4N complex adds (4 N-pointvector adds).

Multiple Chip Rate Sampling and Multiple Receive Antenna Equalization

The following are embodiments using multiple chip rate sampling andmultiple receive antennas. For L receive antennas, 2L channelmatrices—one “even” and one “odd” matrix for each antenna result. Thechannel matrices for l^(th) antenna are denoted as H_(l,e) and H_(l,o)and h_(l,e,n) and h_(l,o,n) denote the n^(th) row of such matrix. Eachchannel matrix is Toeplitz and with the appropriate re-arrangement ofrows the joint channel matrix is a block-Toeplitz matrix, per Equation71. $\begin{matrix}{H_{bT} = {\begin{bmatrix}h_{1,e,1} \\h_{1,o,1} \\\vdots \\h_{L,o,N}\end{bmatrix} = \begin{bmatrix}G_{1} \\G_{2} \\\vdots \\G_{N}\end{bmatrix}}} & {{Equation}\quad 71}\end{matrix}$The matrices G_(i) are the Toeplitz blocks of H_(bT). Each G_(i) is a2L=N matrix.

Estimating the vector d from the received observations r can be modeledper Equation 72.r=H _(bT)d+n   Equation 72

The MMSE estimation formulation is per Equation 73.{circumflex over (d)}_(MMSE) =H _(bT) ^(H)(Σ_(n) +H _(bT) H _(bT)^(H))⁻¹ r   Equation 73Σ_(n) is the covariance of the noise vector n. The form that thesolution of Equation 73 depends on the assumptions that are made forΣ_(n). The introduction of the multiple receive antenna introduces anadditional spatial dimension. Although the interplay of temporal andspatial correlations can be extremely complex, it can be assumed thatthe spatial correlation properties of the noise do not interplay withthe temporal correlation properties, except as a direct product of thetwo, as per Equation 74.Σ_(n)=Σ_(n,1 ant){circle around (×)}Σ_(sp)   Equation 74Σ_(n,1 ant) is the noise covariance matrix of the noise observed at asingle antenna as per Equation 57. Σ_(n,1 ant) is of dimension 2N×2N.Σ_(sp) is the normalized synchronous spatial covariance matrix, i.e. itis the covariance matrix between the L noise samples observed at the Lantennas at the same time normalized to have 1's on the main diagonal.{circle around (×)} denotes the Kroenecker product.

Σ_(n) is a 2LN×2LN Hermitian positive semi-definite matrix, which isblock-Toeplitz with 2L×2L blocks. To estimate the data, four preferredembodiments are described: an exact solution; a simplification byassuming that the L receive antenna have uncorrelated noise; asimplification by ignoring the temporal correlation of the noise in theodd and even streams from the same antenna; and a simplification byassuming that all 2L chip-rate noise streams are uncorrelated.

The complexity of DFT-based processing using the circulant approximationmay be partitioned into two components: the processing of channelestimation which need not be done for every new data block and theprocessing of data itself which is performed for every data block. Inall four embodiments, the complexity of processing data involves: 2Lforward N-point DFTs; 2LN complex multiplies; and 1 inverse N-point DFT.The complexity of processing the channel estimate varies for eachembodiment.

In the case of the exact MMSE solution, the complexity of computing the“MMSE filter” from the channel estimate is as follows: 2L N-point DFT's;N 2L×2L matrix products+N 2L×2L matrix additions to compute(Σ_(n)+H_(bT)H_(bT) ^(H)); N 2L×2L matrix inverses to compute theinverse of (Σ_(n)+H_(bT)H_(bT) ^(H)); and N 2L×2L matrix products toproduce the actual filter.

A major contributor to the overall complexity of this process is thematrix inverse step in which an inverse of 2L×2L matrices has to betaken. It is precisely this complexity that can be reduced by variousassumptions on the uncorrelated nature of the noise, as follows:

1. If it is assumed that the noise is uncorrelated both temporally(odd/even samples) and spatially (across antennas), then Σ_(n) reducesto a diagonal matrix and the problem is identical tosingle-sample-per-chip sampling with 2L antennas with spatiallyuncorrelated noise. As a result, the operation of matrix inverse simplyreduces to a division since all the matrices involved are Toeplitz.

2. If it is assumed that the noise is spatially uncorrelated, then thematrix inverses involved are those of 2×2 matrices.

3. If it is assumed that a temporal uncorrelation of odd/even streamsbut a spatial noise correlation is retained, the matrix inversesinvolved are L×L.

1. A method for data estimation in a wireless communications system fora receiver using multiple chip rate sampling and multiple receiveantennas, the method comprising: producing a received vector at thesampling rate for each receive antenna; producing a channel responsematrix for each antenna at a preferred rate which is slower than thesampling rate; processing each received vector using a sliding windowbased approach, where a plurality of successive windows are processed;for each window of the plurality of windows: producing a combinedcirculant channel response matrix using the channel response matrices;and using the combined circulant channel response matrix and a combinedreceived vector comprising each received vector in a discrete Fouriertransform based approach for estimating a data vector corresponding tothat window; and combining the data vector estimated in each window toform a combined data vector.
 2. The method of claim 1 wherein thesliding window based approach uses an exact solution.
 3. The method ofclaim 1 wherein the sliding window based approach assumes that noisebetween each receive antenna is uncorrelated.
 4. The method of claim 1wherein the sliding window based approach assumes that noise betweenmultiples of the chip rate do not have a temporal correlation.
 5. Themethod of claim 1 wherein the sliding window based approach assumes nocorrelation of noise between any of the combinations of the multiple ofthe chip rate and receive antenna exists.